shallow copy [Java] 객체지향 프로그래밍 - 생성자 App 클래스를 예로 들어 인스턴스 생성하는 과정은 아래와 같아요. 컴파일을 할 때 소스 파일*.java의 클래스가 생성자가 하나도 없다면 컴파일러는 자동적으로 아래와 같은 생성자를 추가해서 컴파일해요. 아무 기능도 수행하지 않기 때문에 생성과 동시에 초기화가 필요한 인스턴스는 반드시 생성자를 선언해줘야 해요. 근데 만약에 매개변수가 있는, 기본 생성자가 아닌 생성자가 선언되어 있고, 기본 ... Object Oriented ProgrammingConstructordeep copyshallow copyOOPJavaConstructor [JS] 원시 값 vs 객체 원시 값을 변수에 할당하면 변수에는 실제 값이 저장된다. 객체를 변수에 할당하면 변수에는 참조 값이 저장된다. 원시 값을 가진 변수를 다른 변수에 할당하면 변수에는 원시 값이 복사된다. 객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조 값이 복사된다. 불변성을 갖는 원시 값을 할당한 변수는 재할당 이외에 변수 값을 변경할 수 있는 방법이 없다. 🔰 Pass By Value(값에 의한 ... 원시 값frontendImmutabledeep copyTILpass-by-referencemutableshallow copy객체jspass by valueImmutable Shallow Copy vs Deep Copy feat.Spread Operator {...} source: Spread Operator는 Deep Copy를 만들어준다 하지만 데이터가 nested 되어 있을 경우에는 nested data는 shallow copy가 된다. 따라서 nested 되어있는 부분도 deep copy 하려면 {...a, b: {...b.foods}}이런식으로 또 한번의 Spread Operator를 행해 주어야 한다 source:... deep copyspread operatorES5shallow copyES5 Premitive & Reference (원시값과 참조값) String Boolean Primitive 🏐 단순히 값이 같으면 동일하게 판별 String은 Primitive(원시값)이다. 원시값의 모양이 같으면 같은 값으로 단순하게 판별한다. 🏐 할당된 값은 그대로 a가 10인 시점에서 b에 값을 한번 할당했기 때문에 a의 값이 변경되어도 다시 a를 할당하지 않는 한b는 변경되지 않는다. 🏐 변수 생성 과정 메모리에 { id: '1', count: ... referenceshallow copy참조값spread operatorpremitive원시값복사얕은복사 전개연산자premitive TIL27: Shallow and Deep Copy Shallow Copy : Clone and Merge Object의 메소드를 이용하는 방법도 있습니다. : Object.assign({}, obj) 이와 같이 객체의 모든 속성 값이 Primitive Type일 경우에는 Shallow Copy만으로도 객체의 복사가 가능합니다. 하지만 속성 값이 또 다른 객체(Nested Object)인 구조일 경우에는 복사본의 Key에 참조하는 주소값이 복... clone and merge깊은 복사얕은 복사shallow copy중첩 복제nested objectcloningsctructured cloningnested cloningdeep copy중첩 객체clone and merge [JS] 얕은 복사 vs 깊은 복사 변수 : 값을 담고 있는 메모리 공간 자체 또는 그 메모리 공간의 주소를 가리키는 식별자 원시값 (primitive) 원시값은 변하지 않는다. 재할당이 될 뿐이며, 재할당은 새 메모리 공간을 확보하여 값을 저장한 후 변수가 참조하던 메모리 주소를 변경하는 것이다. 원시값의 복사 : 값을 그대로 복사하지만, 별개의 메모리 공간을 가리킨다. 객체 (object) 객체는 크기가 일정하지 않고, 메... JavaScriptshallow copydeep copyJavaScript
[Java] 객체지향 프로그래밍 - 생성자 App 클래스를 예로 들어 인스턴스 생성하는 과정은 아래와 같아요. 컴파일을 할 때 소스 파일*.java의 클래스가 생성자가 하나도 없다면 컴파일러는 자동적으로 아래와 같은 생성자를 추가해서 컴파일해요. 아무 기능도 수행하지 않기 때문에 생성과 동시에 초기화가 필요한 인스턴스는 반드시 생성자를 선언해줘야 해요. 근데 만약에 매개변수가 있는, 기본 생성자가 아닌 생성자가 선언되어 있고, 기본 ... Object Oriented ProgrammingConstructordeep copyshallow copyOOPJavaConstructor [JS] 원시 값 vs 객체 원시 값을 변수에 할당하면 변수에는 실제 값이 저장된다. 객체를 변수에 할당하면 변수에는 참조 값이 저장된다. 원시 값을 가진 변수를 다른 변수에 할당하면 변수에는 원시 값이 복사된다. 객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조 값이 복사된다. 불변성을 갖는 원시 값을 할당한 변수는 재할당 이외에 변수 값을 변경할 수 있는 방법이 없다. 🔰 Pass By Value(값에 의한 ... 원시 값frontendImmutabledeep copyTILpass-by-referencemutableshallow copy객체jspass by valueImmutable Shallow Copy vs Deep Copy feat.Spread Operator {...} source: Spread Operator는 Deep Copy를 만들어준다 하지만 데이터가 nested 되어 있을 경우에는 nested data는 shallow copy가 된다. 따라서 nested 되어있는 부분도 deep copy 하려면 {...a, b: {...b.foods}}이런식으로 또 한번의 Spread Operator를 행해 주어야 한다 source:... deep copyspread operatorES5shallow copyES5 Premitive & Reference (원시값과 참조값) String Boolean Primitive 🏐 단순히 값이 같으면 동일하게 판별 String은 Primitive(원시값)이다. 원시값의 모양이 같으면 같은 값으로 단순하게 판별한다. 🏐 할당된 값은 그대로 a가 10인 시점에서 b에 값을 한번 할당했기 때문에 a의 값이 변경되어도 다시 a를 할당하지 않는 한b는 변경되지 않는다. 🏐 변수 생성 과정 메모리에 { id: '1', count: ... referenceshallow copy참조값spread operatorpremitive원시값복사얕은복사 전개연산자premitive TIL27: Shallow and Deep Copy Shallow Copy : Clone and Merge Object의 메소드를 이용하는 방법도 있습니다. : Object.assign({}, obj) 이와 같이 객체의 모든 속성 값이 Primitive Type일 경우에는 Shallow Copy만으로도 객체의 복사가 가능합니다. 하지만 속성 값이 또 다른 객체(Nested Object)인 구조일 경우에는 복사본의 Key에 참조하는 주소값이 복... clone and merge깊은 복사얕은 복사shallow copy중첩 복제nested objectcloningsctructured cloningnested cloningdeep copy중첩 객체clone and merge [JS] 얕은 복사 vs 깊은 복사 변수 : 값을 담고 있는 메모리 공간 자체 또는 그 메모리 공간의 주소를 가리키는 식별자 원시값 (primitive) 원시값은 변하지 않는다. 재할당이 될 뿐이며, 재할당은 새 메모리 공간을 확보하여 값을 저장한 후 변수가 참조하던 메모리 주소를 변경하는 것이다. 원시값의 복사 : 값을 그대로 복사하지만, 별개의 메모리 공간을 가리킨다. 객체 (object) 객체는 크기가 일정하지 않고, 메... JavaScriptshallow copydeep copyJavaScript